/**
 * LHX聊天模块 - 腾讯云TRTC配置文件
 * 专用于LHX聊天功能的音视频通话
 */

const TLSSigAPIv2 = require('tls-sig-api-v2');
const crypto = require('crypto');

// LHX聊天模块 - TRTC基础配置
const lhxTrtcConfig = {
  sdkAppId: 1600100098, // LHX聊天模块 - 腾讯云TRTC应用ID
  secretKey: '273df29697de550799101109287a684cfbfb877ce9f8ad9050729b522de99d1e', // LHX聊天模块 - TRTC密钥
  expireTime: 604800, // LHX聊天模块 - UserSig过期时间（7天）
};

// LHX聊天模块 - 创建官方UserSig生成API实例
const lhxTrtcApi = new TLSSigAPIv2.Api(lhxTrtcConfig.sdkAppId, lhxTrtcConfig.secretKey);

/**
 * LHX聊天模块 - 生成UserSig（使用官方API）
 * @param {string} userId - 用户ID
 * @returns {string} UserSig签名
 */
function lhxGenerateUserSig(userId) {
  try {
    // 使用腾讯云官方API生成UserSig
    const userSig = lhxTrtcApi.genUserSig(userId, lhxTrtcConfig.expireTime);
    console.log(`[LHX-TRTC] 官方API生成UserSig成功: userId=${userId}`);
    return userSig;
  } catch (error) {
    console.error('[LHX-TRTC] 官方API生成UserSig失败:', error);
    throw new Error('UserSig生成失败');
  }
}

// LHX聊天模块 - 辅助函数已被官方API替代，无需自定义实现

/**
 * LHX聊天模块 - 生成房间ID
 * @param {string} patientId - 患者ID
 * @param {string} doctorId - 医生ID
 * @returns {number} 房间ID（数字格式）
 */
function lhxGenerateRoomId(patientId, doctorId) {
  // 使用患者ID和医生ID生成唯一的数字房间ID
  const combined = `${patientId}_${doctorId}`;
  const hash = crypto.createHash('md5').update(combined).digest('hex');
  // 取前8位转换为数字，确保在TRTC房间ID范围内
  return parseInt(hash.substring(0, 8), 16) % 999999999;
}

module.exports = {
  lhxTrtcConfig,
  lhxGenerateUserSig,
  lhxGenerateRoomId
};